using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Thaire.Investment.Domains.Transaction
{

    public class UnitTrustHeader
    {
        #region Properties
        // UNIT_TRUST_HEADER_ID
        public virtual int ID { set; get; }
        // UNIT_TRUST_COMPANY_NAME
        public virtual String UnitTrustCompanyName { set; get; }
        // UNIT_TRUST_COMPANY_ID
        public virtual int? UnitTrustCompanyID { set; get; }
        // MATURITY_STATUS
        public virtual String MaturityStatus { set; get; }
        // UNIT_TRUST_TYPE_NAME
        public virtual String UnitTrustTypeName { set; get; }
        // UNIT_TRUST_TYPE_ID
        public virtual int? UnitTrustTypeID { set; get; }
        // UNIT_TRUST_TYPE_GROUP
        public virtual String UnitTrustTypeGroup { set; get; }
        // FUND_NAME
        public virtual String FundName { set; get; }
        /// <summary>
        ///FUND_NAME_EN
        /// </summary>
        public virtual String FundNameEn { set; get; }
        // ASSET_MGMT_NAME
        public virtual String AssetMgmtName { set; get; }
        // ASSET_MGMT_ID
        public virtual int? AssetMgmtID { set; get; }
        // SYMBOL
        public virtual String Symbol { set; get; }
        // TOTAL_SIZE
        public virtual int? TotalSize { set; get; }
        // MATURITY_DATE
        public virtual DateTime? MaturityDate { set; get; }
        // BID_PRICE
        public virtual decimal? BidPrice { set; get; }
        // NAV
        public virtual decimal? Nav { set; get; }
        // BID_PRICE_DATE
        public virtual DateTime? BidPriceDate { set; get; }
        // NAV_DATE
        public virtual DateTime? NavDate { set; get; }
        // INITIAL_PAR
        public virtual decimal? InitialPar { set; get; }
        // PAR
        public virtual decimal? Par { set; get; }
        // PAR_DATE
        public virtual DateTime? ParDate { set; get; }
        // LIQUIDITY_TIER_I_PERCENT
        public virtual int? LiquidityTierIPercent { set; get; }
        // LIQUIDITY_TIER_II_PERCENT
        public virtual int? LiquidityTierIIPercent { set; get; }
        // LIQUIDITY_LOW_LIQUIDITY_PERCENT
        public virtual int? LiquidityLowLiquidityPercent { set; get; }
        // INVOLVED_PARTY_TYPE_ID
        public virtual int? InvolvedPartyTypeID { set; get; }
        // INVOLVED_PARTY_TYPE_NAME
        public virtual String InvolvedPartyTypeName { set; get; }
        // RELATED
        public virtual String Related { set; get; }
        // REMARK_OIC
        public virtual String RemarkOic { set; get; }
        // REMAIN_UNIT
        public virtual int? RemainUnit { set; get; }
        // CREATE_DATE
        public virtual DateTime? CreateDate { set; get; }
        // CREATE_BY
        public virtual String CreateBY { set; get; }
        // MODIFY_DATE
        public virtual DateTime? ModifyDate { set; get; }
        // MODIFY_BY
        public virtual String ModifyBY { set; get; }

        // LISTED_STATUS
        public virtual String ListedStatus { set; get; }


        #endregion



        public override bool Equals(object obj)
        {
            if (obj == null)
                return false;
            if (obj.GetType() != typeof(UnitTrustHeader) && !(obj is UnitTrustHeader))
                return false;
            return ToString().Equals(obj.ToString());
        }

        public override int GetHashCode()
        {
            return ToString().GetHashCode();
        }

        public override string ToString()
        {
            return string.Format("{0}", ID);
        }

    }


}